package com.yoomiito.app.net;

import com.yoomiito.app.Constant;
import com.yoomiito.app.model.BaseList;
import com.yoomiito.app.model.CreditCard;
import com.yoomiito.app.model.LiveRecord;
import com.yoomiito.app.model.LiveUserInfo;
import com.yoomiito.app.model.MaterialContent;
import com.yoomiito.app.model.MaterialLabel;
import com.yoomiito.app.model.OilType4Data;
import com.yoomiito.app.model.bean.AdInfo;
import com.yoomiito.app.model.bean.AddressBean;
import com.yoomiito.app.model.bean.AddressInfo;
import com.yoomiito.app.model.bean.AreaInfo;
import com.yoomiito.app.model.bean.BankBean;
import com.yoomiito.app.model.bean.BannerAndIconInfo;
import com.yoomiito.app.model.bean.BingPhoneBean;
import com.yoomiito.app.model.bean.ExamineBean;
import com.yoomiito.app.model.bean.ExamineBean1;
import com.yoomiito.app.model.bean.GuiMIHuiBean;
import com.yoomiito.app.model.bean.GuiMiResult;
import com.yoomiito.app.model.bean.IncomeBean;
import com.yoomiito.app.model.bean.LiveListInfo;
import com.yoomiito.app.model.bean.MaintainGoods;
import com.yoomiito.app.model.bean.MyTeamSaleBean;
import com.yoomiito.app.model.bean.OrderInfo;
import com.yoomiito.app.model.bean.PickGoods;
import com.yoomiito.app.model.bean.SaleBean;
import com.yoomiito.app.model.bean.ShareUrl;
import com.yoomiito.app.model.bean.StockBean;
import com.yoomiito.app.model.bean.UserMoneyInfo;
import com.yoomiito.app.model.bean.WalletUrl;
import com.yoomiito.app.model.colleage.Subject;
import com.yoomiito.app.model.colleage.SubjectShareInfo;
import com.yoomiito.app.model.colleage.SubjectTableInfo;
import com.yoomiito.app.model.comment.CommentInfo;
import com.yoomiito.app.model.config.SystemInfo;
import com.yoomiito.app.model.gift.GiftGoods;
import com.yoomiito.app.model.home.HomeHotActData;
import com.yoomiito.app.model.home.TaoBaoHotSearch;
import com.yoomiito.app.model.home.VideoClipInfo;
import com.yoomiito.app.model.home.YouPinHotSearch;
import com.yoomiito.app.model.meituan.MeiTuanData;
import com.yoomiito.app.model.my.AgreementInfo;
import com.yoomiito.app.model.my.AngleUserInfo;
import com.yoomiito.app.model.my.ApplyBean;
import com.yoomiito.app.model.my.ApplyInfo;
import com.yoomiito.app.model.my.BankSearch;
import com.yoomiito.app.model.my.BaseAngleInfo;
import com.yoomiito.app.model.my.BondInfo;
import com.yoomiito.app.model.my.DeductMoneyDetail;
import com.yoomiito.app.model.my.GiveMoreIncomeDetail;
import com.yoomiito.app.model.my.InviteFriend;
import com.yoomiito.app.model.my.MyIncomeBean;
import com.yoomiito.app.model.my.TeamAllowance;
import com.yoomiito.app.model.my.YouMI;
import com.yoomiito.app.model.oil.OilBannerData;
import com.yoomiito.app.model.oil.OilStationData;
import com.yoomiito.app.model.oil.OilStationDetailData;
import com.yoomiito.app.model.oilcard.OilCardData;
import com.yoomiito.app.model.oilcard.OilCardInfo;
import com.yoomiito.app.model.oilcard.OilCardOrderDetail;
import com.yoomiito.app.model.order.OrderDetailInfo;
import com.yoomiito.app.model.bean.VersionInfo;
import com.yoomiito.app.model.cicle.CicleInfo;
import com.yoomiito.app.model.cicle.CicleOrderInfo;
import com.yoomiito.app.model.cicle.CicleProductnfo;
import com.yoomiito.app.model.cicle.CicleRecommendInfo;
import com.yoomiito.app.model.bean.GoodsDetail;
import com.yoomiito.app.model.bean.GoodsInfo;
import com.yoomiito.app.model.bean.GoodsShareInfo;
import com.yoomiito.app.model.bean.HomeActData;
import com.yoomiito.app.model.bean.InvitePeopleInfoBean;
import com.yoomiito.app.model.bean.NavInfo;
import com.yoomiito.app.model.bean.OrderList;
import com.yoomiito.app.model.bean.UserInfo;
import com.yoomiito.app.model.cicle.CircleReommendGoodsData;
import com.yoomiito.app.model.cicle.QiniuTokenInfo;
import com.yoomiito.app.model.config.ConfigInfo;
import com.yoomiito.app.model.gift.GiftType;
import com.yoomiito.app.model.home.FreeActList;
import com.yoomiito.app.model.home.FreeBuyActInfo;
import com.yoomiito.app.model.home.FreeGoodsBuyInfo;
import com.yoomiito.app.model.home.HaoDanKuData;
import com.yoomiito.app.model.home.PanicData;
import com.yoomiito.app.model.my.MyCollectGoodsBean;
import com.yoomiito.app.model.my.MyHistoryIncomeInfo;
import com.yoomiito.app.model.my.MyHistoryMonthInfo;
import com.yoomiito.app.model.my.MyInviteBean;
import com.yoomiito.app.model.my.MyMoneyDetailInfo;
import com.yoomiito.app.model.my.MyMonthOrderInfo;
import com.yoomiito.app.model.my.MyRemainMoneyAgentInfo;
import com.yoomiito.app.model.my.MyRemainMoneyInfo;
import com.yoomiito.app.model.my.MyServicePrecent;
import com.yoomiito.app.model.my.MyTodayOrderInfo;
import com.yoomiito.app.model.my.MyUserCenterInfo;
import com.yoomiito.app.model.my.MyUserInfo;
import com.yoomiito.app.model.my.MyVipBean;
import com.yoomiito.app.model.gift.GiftGoodsList;
import com.yoomiito.app.model.my.PayeeInfo;
import com.yoomiito.app.model.order.CreateOrderInfo;
import com.yoomiito.app.model.order.PayResultInfo;
import com.yoomiito.app.model.order.ShopCarGoods;
import com.yoomiito.app.model.order.ShopCarList;
import com.yoomiito.app.model.sdd.SddFreeGoodsList;
import com.yoomiito.app.model.sdd.SddFreeGoodsData;
import com.yoomiito.app.model.sdd.SddFreeGoodsOrderInfo;
import com.yoomiito.app.model.sdd.SddUserData;
import com.yoomiito.app.model.sdd.SddVipGoodsInfo;
import com.yoomiito.app.model.sdd.ShareMsg;
import com.yoomiito.app.model.video.VideoOtherInfo;
import com.yoomiito.app.model.zhongtai.ZhongTaiData;


import java.util.List;

import cn.droidlover.xdroidmvp.net.BaseModel;
import io.reactivex.Flowable;
import io.reactivex.Observable;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;
import retrofit2.http.Streaming;
import retrofit2.http.Url;

public interface YmApiServer {

    //微信授权登陆 验证用户是否在后台已经注册
    @FormUrlEncoded
    @POST("wx_login")
    Flowable<BaseModel<UserInfo>> verificationUser(@Field("access_token") String access_token,
                                                   @Field("refresh_token") String refresh_token,
                                                   @Field("open_id") String open_id,
                                                   @Field("unid") String unid);

    //发送验证码
    @FormUrlEncoded
    @POST("send_sms")
    Flowable<BaseModel<BingPhoneBean>> sendCode(@Field("mobile") String mobile, @Field("areaCode") String areaCode, @Field("systemType") String systemType);


    //验证短信验证码
    @FormUrlEncoded
    @POST("check_sms")
    Flowable<BaseModel<UserInfo>> verifyCode(@Field("code") String verify_code,
                                             @Field("mobile") String mobile,
                                             @Field("open_id") String open_id);

    //验证短信验证码
    @FormUrlEncoded
    @POST("check_sms")
    Flowable<BaseModel<UserInfo>> verifyCode1(@Field("code") String verify_code,
                                              @Field("mobile") String mobile,
                                              @Field("openId") String open_id,
                                              @Field("nickname") String nickname,
                                              @Field("headimgurl") String headimgurl,
                                              @Field("sex") int sex
    );

    //绑定邀请码
    @FormUrlEncoded
    @POST("bind_superior")
    Flowable<BaseModel<UserInfo>> bingInviteCode(@Field("mobile") String mobile, @Field("invCode") String invCode);

    //获取邀请人信息
    @FormUrlEncoded
    @POST("recommend_user")
    Flowable<BaseModel<InvitePeopleInfoBean>> getInviteInfo(@Field("invCode") String invitation_code);

    //退出登录
    @GET("login_out")
    Flowable<BaseModel> logout();

    //退出登录
    @GET("account_cancel")
    Flowable<BaseModel> accountCancel();


    //已用手机登录用户-登录状态下-绑定微信
    @FormUrlEncoded
    @POST("bind_wx")
    Flowable<BaseModel> bindWx(@Field("access_token") String access_token,
                               @Field("refresh_token") String refresh_token,
                               @Field("open_id") String open_id,
                               @Field("unid") String unid);

    @GET("user_apply_list")
    Flowable<BaseModel<ApplyBean>> applyList(@Query("page") int page,@Query("type") int type);


    @GET("user_settled_order")
    Flowable<BaseModel<OrderList>> settledOrder(@Query("page") int page);

    @GET("goods_total_num")
    Flowable<BaseModel<StockBean>> goodsNum(@Query("type") int type, @Query("productSite") int productSite);


    //获取获取用户信息
    @GET("personal/person_info")
    Flowable<BaseModel<UserInfo>> getUserInfo();

    //获取获取用户信息
    @GET("wallet_url")
    Flowable<BaseModel<WalletUrl>> getWalletUrl();


    @GET("mobile_area_code")
    Flowable<BaseModel<List<AreaInfo>>> getArea();

    //首页---顶部导航
    @GET("get_navigates")
    Flowable<BaseModel<List<NavInfo>>> getNavigates(@Query("nav_id") String nav_id);

    //首页---banner和各种图  各种活动
    @GET("home")
    Flowable<BaseModel<HomeActData>> getHomeBannerAndIcon();

    //首页---淘礼金
    @GET("free_index")
    Flowable<BaseModel<FreeBuyActInfo>> getFreeBuyAct();

    //淘礼金列表
    @GET("free_list")
    Flowable<BaseModel<FreeActList>> getFreeGoodsList(@Query("id") String id);

    //淘礼金---商品详情
    @GET("free_detail")
    Flowable<BaseModel<GoodsDetail>> getFreeGoodsInfo(@Query("id") String id, @Query("product_id") String product_id);

    @GET("get_free")
    Observable<BaseModel<FreeGoodsBuyInfo>> buyFreeGoods(@Query("id") String id, @Query("product_id") String product_id);

    //首页----推荐商品
    @GET("limit_buy")
    Flowable<BaseModel<List<GoodsInfo>>> getHomeRecommendGoods();

    @FormUrlEncoded
    @POST("limit_buy")
    Flowable<BaseModel<PanicData>> getPanicGoods(@Field("hour_type") int type);

    //商品详情
    @GET("goods_detail/{id}")
    Flowable<BaseModel<GoodsDetail>> getGoodsInfo(@Path("id") String id,
                                                  @Query("type") String type);

    //商品详情----获取关联商品
    @GET("get_related_products/{id}")
    Flowable<BaseModel<List<GoodsDetail>>> getRelatedGoods(@Path("id") String id);

    //商品分享----分享详情
    @GET("get_share_detail/{id}")
    Flowable<BaseModel<GoodsShareInfo>> getShareDetail(@Path("id") String id, @Query("type") int type);

    /**
     * @param keyword
     * @param sort       排序_des（降序），排序_asc（升序），销量（total_sales），淘客佣金比率（tk_rate），
     *                   累计推广量（tk_total_sales），总支出佣金（tk_total_commi），价格（price）
     * @param has_coupon 是否有优惠券 1是有 默认0
     * @return
     */
    @FormUrlEncoded
    @POST("search_goods")
    Flowable<BaseModel<List<GoodsInfo>>> searchGoods(@Field("keyword") String keyword,
                                                     @Field("sort") String sort,
                                                     @Field("has_coupon") int has_coupon,
                                                     @Field("page") int page);


    /**
     * 获取礼包列表
     *
     * @param sort      排序_des（降序），排序_asc（升序），价格 sale_price 销量volume
     * @param gift_type 分类
     * @param type      0-表示正常VIP产品，1-表示3650Vip产品,2-爆品' 3优品 4区代商城
     * @return
     */
    @GET("get_vip_goods")
    Flowable<BaseModel<GiftGoodsList>> getVipGiftGoods(@Query("sort") String sort,
                                                       @Query("page") int page,
                                                       @Query("gift_type") long gift_type,
                                                       @Query("type") int type,
                                                       @Query("keyword") String keyword);

    @GET("get_vip_goods")
    Flowable<BaseModel<GiftGoodsList>> getVipGiftGood(@Query("priceSort") int priceSort,
                                                      @Query("page") int page,
                                                      @Query("type") long type,
                                                      @Query("categorizeId") int categorizeId,
                                                      @Query("salesSort") int salesSort,
                                                      @Query("size") int size);


    @GET(" shopping_cart/get_cart_mum")
    Flowable<BaseModel<GiftGoodsList>> getCarNum();

    @GET("get_type_lists/{id}")
    Flowable<BaseModel<List<GiftType>>> getGiftType(@Path("id") int id);

    /**
     * 下单
     *
     * @param body
     * @return
     */
    @POST("mugwort_order")
    Flowable<BaseModel<CreateOrderInfo>> createOrder(@Body RequestBody body);

    /**
     * 下单
     *
     * @param body
     * @return
     */
    @POST("mugwort_order")
    Flowable<BaseModel<PayResultInfo>> order(@Body RequestBody body);

    /**
     * 下单
     *
     * @param body
     * @return
     */
    @POST("create_order")
    Flowable<BaseModel> cOrder(@Body RequestBody body);

    /**
     * 获取淘宝授权链接
     *
     * @return
     */
    @GET("get_taobao_url")
    Flowable<BaseModel<String>> getTaoBaoUrl();

    /**
     * 渠道Id注册
     *
     * @param code
     * @param state
     * @return
     */
    @GET("taobao_auth")
    Flowable<BaseModel> taoBaoAuth(@Query("code") String code,
                                   @Query("state") String state);

    /**
     * 添加收藏
     *
     * @return
     */
    @FormUrlEncoded
    @POST("add_collection")
    Flowable<BaseModel> addCollection(@Field("num_iid") String num_iid);

    /**
     * 取消收藏
     *
     * @param num_iid
     * @return
     */
    @FormUrlEncoded
    @POST("del_collection")
    Flowable<BaseModel> delCollection(@Field("num_iid") String num_iid);

    /**
     * 导航栏-商品列表
     *
     * @param name
     * @param sort
     * @return
     */
    @FormUrlEncoded
    @POST("navigates_goods")
    Flowable<BaseModel> navigateGoods(@Field("name") String name,
                                      @Field("sort") String sort);

    /**
     * 查询订单状态
     *
     * @param id
     * @return
     */
    @GET("query_order/{id}")
    Flowable<BaseModel> quseryOrderStatus(@Path("id") String id, @Query("pay_type") String pay_type);

    /**
     * 查询订单列表
     *
     * @return
     */
    @GET("order_list")
    Flowable<BaseModel<OrderList>> queryOrderList(@Query("page") int page, @Query("grade") int grade,
                                                  @Query("type") int type);

    /**
     * 查询订单列表
     *
     * @return
     */
    @GET("order_offline")
    Flowable<BaseModel<List<OrderInfo>>> queryOfflineList();

    /**
     * 查询订单列表
     *
     * @return
     */
    @POST("offline_examine")
    Flowable<BaseModel<List<OrderInfo>>> offExamine(@Body ExamineBean data);

    /**
     * 查询订单列表
     *
     * @return
     */
    @POST("offline_examine")
    Flowable<BaseModel<List<OrderInfo>>> offExamine1(@Body ExamineBean1 data);


    /**
     * 查询订单列表
     *
     * @return
     */
    @GET("goods_stock_list")
    Flowable<BaseModel<StockBean>> queryStockList(@Query("page") int page, @Query("type") int type,
                                                  @Query("productId") String productId);


    /**
     * 查询订单列表
     *
     * @return
     */
    @GET("recommend_order_detail")
    Flowable<BaseModel<OrderInfo>> recommendDetail(@Query("id") String type,
                                                   @Query("bizType") int bizType);


    /**
     * 订单详情
     *
     * @param order_id
     * @param type
     * @return
     */
    @GET("order_detail/{id}")
    Flowable<BaseModel<OrderDetailInfo>> getOrderInfo(@Path("id") String order_id);

    /**
     * 确认收货
     *
     * @param order_id 订单id 订单详情的id
     * @return
     */
    @GET("order_confirm_receipt/{id}")
    Flowable<BaseModel> confirmOrder(@Path("id") String order_id);

    /**
     * 直播列表
     *
     * @param page
     * @return
     */
    @GET("get_live_list")
    Flowable<BaseModel<LiveListInfo>> getLiveList(@Query("page") int page);


    @FormUrlEncoded
    @POST("guimi_code")
    Flowable<BaseModel<GuiMIHuiBean>> sureGuiMiHuiId(@Field("activation_code") String activation_code);

    @FormUrlEncoded
    @POST("guimi_activation")
    Flowable<BaseModel<GuiMiResult>> guimihuiAct(@Field("activation_code") String activation_code,
                                                 @Field("mobile") String mobile,
                                                 @Field("verify_code") String verify_code);

    /**
     * 好单库
     * 旧接口 ： get_haodanku
     * 新接口： get_haodanku_new
     *
     * @param id
     * @return
     */
    @GET("get_haodanku_new/{id}")
    Flowable<BaseModel<HaoDanKuData>> getHaoDanKu(@Path("id") String id,
                                                  @Query("sort") int sort,
                                                  @Query("coupon_min") int hasCoupon,
                                                  @Query("page") long page,
                                                  @Query("type") String type,
                                                  @Query("url") String url);

    /**
     * 我的发布
     *
     * @param page
     * @return
     */
    @GET("circle/get_my_circle")
    Flowable<BaseModel<CicleInfo>> getMyCircle(@Query("page") int page);

    /**
     * 下载文件
     *
     * @param url
     * @return
     */
    @Streaming
    @GET
    Observable<ResponseBody> download(@Url String url);

    /**
     * 版本更新
     *
     * @return
     */
    @GET("app_version_info/{id}")
    Flowable<BaseModel<VersionInfo>> newVersion(@Path("id") int id);

    /**
     * 主播信息
     *
     * @return
     */
    @GET("get_live_user")
    Flowable<BaseModel<LiveUserInfo>> getLiveUser();

    /**
     * 获取各公司广告页
     *
     * @return
     */
    @GET("get_loading_img")
    Flowable<BaseModel<AdInfo>> getAd();


    /**
     * 直播-开启录制视频
     *
     * @param cide
     * @param open
     * @return
     */
    @FormUrlEncoded
    @POST("set_live_record")
    Flowable<BaseModel<LiveRecord>> liveRecord(@Field("cid") String cide,//频道id
                                               @Field("open") String open);//1开始 0关闭

    //测试用
    @GET("alipay")
    Flowable<BaseModel> ali();

    //===============个人中心  begin==========================

    //获取用户中心数据
    @GET("personal/person_center")
    Flowable<BaseModel<MyUserCenterInfo>> getUserCenterInfo();

    /**
     * 订单--预计结算
     *
     * @param page
     * @param size
     * @return
     */
    @GET("personal/pending_rebate_list")
    Flowable<BaseModel<MyMonthOrderInfo>> getMonthOrder_2(@Query("page") int page,
//                                                          @Query("month")int month,
                                                          @Query("size") int size);

    //获取用户个人数据
    @GET("personal/person_info")
    Flowable<BaseModel<MyUserInfo>> getMyUserInfo();

    //修改用户信息
    @FormUrlEncoded
    @POST("update_user_info")
    Flowable<BaseModel> setMyUserInfo(@Field("nickname") String name, @Field("sex") String sex, @Field("birthday") String birthday, @Field("headimgurl") String headimgurl);
//    Flowable<BaseRepository<InvitePeopleInfoBean>> setMyUserInfo(@Field("name") String name,@Field("sex") int sex,@Field("birthday") String birthday,@Field("headimgurl") String headimgurl);

    //获取余额明细
    @GET("user_withdrawal_list")
    Flowable<BaseModel<MyMoneyDetailInfo>> getMyMoneyDetail(@Query("page") int page,@Query("type") int type);

    //获取余额明细（代理）
    @GET("withdraw/agent_account_list")
    Flowable<BaseModel<MyMoneyDetailInfo>> getMyMoneyDetailAgent(@Query("page") int page);

    //获取VIP数据
    @GET("personal/vip_order")
    Flowable<BaseModel<MyVipBean>> getMyVipOrder(@Query("page") int page, @Query("type") int type, @Query("size") int size);

    /**
     * 获取今日订单数据
     *
     * @param page
     * @param type 1:淘宝; 2:礼包; 3:爆品; 4:优品; 5:课程;
     * @param size
     * @return
     */
    @GET("personal/today_order")
    Flowable<BaseModel<MyTodayOrderInfo>> getTodayOrder(@Query("page") int page, @Query("type") int type, @Query("size") int size);

    @Deprecated
    //获取月度订单数据
    @GET("personal/moth_order")
    Flowable<BaseModel<MyMonthOrderInfo>> getMonthOrder(@Query("page") int page, @Query("month") int month, @Query("size") int size);

    //获取历史订单数据
    @GET("personal/history_income")
    Flowable<BaseModel<MyHistoryIncomeInfo>> getHistoryIncome(@Query("page") int page, @Query("size") int size);

    //获取历史订单每个月数据
    @GET("personal/history_income_by_day")
    Flowable<BaseModel<MyHistoryMonthInfo>> getHistoryMonth(@Query("page") int page, @Query("month") int month, @Query("size") int size);

    //获取商品收藏数据
    @GET("get_collection_list")
    Flowable<BaseModel<MyCollectGoodsBean>> getCollectGoods(@Query("page") int page, @Query("size") int size);


    @GET("user_account_list")
    Flowable<BaseModel<IncomeBean>> getAccountList();


    @GET("user_history_list")
    Flowable<BaseModel<MyIncomeBean>> getHistoryList(@Query("page") int page, @Query("type") int type);


    @GET("agent_rebate_list")
    Flowable<BaseModel<MyIncomeBean>> getAgentRebate(@Query("page") int page, @Query("month") String type);


    @GET("credit_card_list")
    Flowable<BaseModel<MyIncomeBean>> getCreditList(@Query("page") int page, @Query("month") String type);


    @GET("bank_app_get_message")
    Flowable<BaseModel<BankBean>> getBankMessage();

    //删除收藏商品
    @FormUrlEncoded
    @POST("del_collection")
    Flowable<BaseModel<Object>> deleteCollectGood(@Field("num_iid") String num_iid);

    //获取我的邀请数据
    @GET("get_invite")
    Flowable<BaseModel<MyInviteBean>> getInvite(@Query("page") int page, @Query("type") int user_type, @Query("loginTime") String loginTime, @Query("nickname") String nickname);

    //提现查询手续费率
    @FormUrlEncoded
    @POST("withdraw/withdraw_service_precent")
    Flowable<BaseModel<MyServicePrecent>> getWithdrawServicePrecent(@Field("money") String money);

    //混合支付
    @FormUrlEncoded
    @POST("multiplepay")
    Flowable<BaseModel<PayResultInfo>> multipPay(@Field("id") String id,
                                                 @Field("weixin_money") int weixin_money,
                                                 @Field("ali_money") int ali_money,
                                                 @Field("account") String account,
                                                 @Field("order_type") int order_type,
                                                 @Field("encoded_password") String encoded_password,
                                                 @Field("deduction_account") String deduction_account);

    //混合支付
    @FormUrlEncoded
    @POST("bank_insert_message")
    Flowable<BaseModel> insertBank(@Field("province") String province,
                                   @Field("provinceCode") String provinceCode,
                                   @Field("city") String city,
                                   @Field("cityCode") String cityCode,
                                   @Field("bankId") int bankId,
                                   @Field("accountNumber") String accountNumber,
                                   @Field("name") String name,
                                   @Field("mobile") String mobile,
                                   @Field("idCard") String idCard,
                                   @Field("branch") String branch,
                                   @Field("code") String code);


    @GET("get_achieve")
    Flowable<BaseModel<SaleBean>> getAchieve();

    @GET("get_team_record")
    Flowable<BaseModel<MyTeamSaleBean>> getTeamRecord(@Query("date") String date, @Query("page") int page);

    @GET("bond_list")
    Flowable<BaseModel<List<BondInfo>>> getBondList(@Query("page") int page);


    //混合支付
    @FormUrlEncoded
    @POST("bank_update_message")
    Flowable<BaseModel> updateBank(
            @Field("id") String id,
            @Field("province") String province,
            @Field("provinceCode") String provinceCode,
            @Field("city") String city,
            @Field("cityCode") String cityCode,
            @Field("bankId") int bankId,
            @Field("accountNumber") String accountNumber,
            @Field("name") String name,
            @Field("mobile") String mobile,
            @Field("idCard") String idCard,
            @Field("branch") String branch,
            @Field("code") String code);

    /**
     * 取消订单
     *
     * @param order_type
     * @param order_id
     * @return
     */
    @GET("order_cancel/{id}")
    Flowable<BaseModel> cancelOrder(@Path("id") String order_id);

    //提现查询手续费率(代理)
    @FormUrlEncoded
    @POST("withdraw/agent_money")
    Flowable<BaseModel<MyServicePrecent>> getAgentWithdrawServicePrecent(@Field("money") String money);


    //提现
//    Flowable<BaseRepository<Object>> withdraw(@Field("money") String money, @Field("encoded_password") String encoded_password);
    @FormUrlEncoded
    @POST("withdraw/user_withdraw")
    Flowable<BaseModel<Object>> withdraw(@Field("json") String money, @Field("json2") String encoded_password);


    //获取收款人信息
    @GET("get_user_baseinfo")
    Flowable<BaseModel<PayeeInfo>> getPayeeInfo(@Query("mobile") String mobile);

    //转账
//    @FormUrlEncoded
//    @POST("transfer")
//    Flowable<BaseRepository> transfer(@Field("t_uid") String t_uid,
//                                 @Field("money") String money,
//                                 @Field("encoded_password") String encoded_password);
    //转账
    @FormUrlEncoded
    @POST("transfer")
    Flowable<BaseModel> transfer(@Field("json") String t_uid,
                                 @Field("json2") String encoded_password);

    //提现（代理）
    @FormUrlEncoded
    @POST("withdraw/agent_withdraw")
    Flowable<BaseModel<Object>> withdrawAgent(@Field("money") String money);

    //获取用户的余额及是否是区代
    @GET("withdraw/get_money_agent")
    Flowable<BaseModel<MyRemainMoneyInfo>> getMoneyAgent();

    @POST("account_insert")
    Flowable<BaseModel> accountInsert(@Body ApplyInfo applyInfo);

    @FormUrlEncoded
    @POST("account_delete")
    Flowable<BaseModel> accountDelete(@Field("id") String id);

    @GET("account_list")
    Flowable<BaseModel<List<ApplyInfo>>> accountList(@Query("type") int type) ;

    @GET("withdrawal_msg")
    Flowable<BaseModel<ApplyBean>> withdrawalMsg();


    //获取代理余额（代理）
    @GET("withdraw/get_agent_account")
    Flowable<BaseModel<MyRemainMoneyAgentInfo>> getRemainMoneyAgent();

    //设置支付密码--发送验证码
    @POST("withdraw/send_sms")
    Flowable<BaseModel> withdrawSms();

    @FormUrlEncoded
    @POST("withdrawal_apply")
    Flowable<BaseModel> withdrawApply(@Field("id") String id, @Field("money") String money,@Field("moneyType") int type);


    //设置支付密码---验证验证码
    @FormUrlEncoded
    @POST("withdraw/verify_code_widthdraw")
    Flowable<BaseModel> verifyWithdrawSms(@Field("verify_code") String verifyCode);

    //设置支付密码
    @FormUrlEncoded
    @POST("withdraw/set_withdraw_pass")
    Flowable<BaseModel> setPayPsw(@Field("encoded_password") String psw);
    //===============个人中心  end==========================

    //系统配置信息
    @GET("config")
    Flowable<BaseModel<ConfigInfo>> getConfigInfo();

    //===============圈子  start==========================
    //获取优米圈数据
    @GET("circle/get_circle")
    Flowable<BaseModel<CicleInfo>> geCicleData(@Query("page") int page, @Query("size") int size);

    //获取推荐商品数据
    @GET("get_community_list/{type}")
    Flowable<BaseModel<CicleRecommendInfo>> geGoodsRecommendData(@Path("type") int type, @Query("page") int page, @Query("size") int size);

    //圈子--推荐商品
    @GET("goods_recommend")
    Flowable<BaseModel<CircleReommendGoodsData>> getRecommendGoods(@Query("page") long page);

    //获取已购买的商品列表
    @GET("personal/my_order")
    Flowable<BaseModel<CicleOrderInfo>> geBuyGoodsData(@Query("page") int page, @Query("size") int size, @Query("order_type") int order_type, @Query("status") int status);

    //获取产品信息
    @FormUrlEncoded
    @POST("circle/get_product_info")
    Flowable<BaseModel<CicleProductnfo>> geProductInfoData(@Field("product_id") String product_id,
                                                           @Field("order_id") String order_id,
                                                           @Field("order_type") int order_type);

    //
    @FormUrlEncoded
    @POST("circle/create_circle")
    Flowable<BaseModel<Object>> publishCicle(@Field("product_id") String product_id,
                                             @Field("order_id") String order_id,
                                             @Field("order_type") int order_type,
                                             @Field("content") String content,
                                             @Field("imgurl") String imgurl,
                                             @Field("type") int type
    );


    //获取七牛token
    @GET("qiniu/token")
    Flowable<BaseModel<QiniuTokenInfo>> getQiniuToken();
    //===============圈子  end==========================

    //====================购物车=======================//
    //购物车列表
    @GET("shopping_cart/goods_list")
    Flowable<BaseModel<ShopCarList>> showCarList(@Query("page") int page,
                                                 @Query("size") int size);
    //购物车列表
    @GET("shopping_cart/goods_list")
    Flowable<BaseModel<MaintainGoods>> showShopCarList(@Query("page") int page,
                                                            @Query("size") int size);
    /**
     * 添加购物车
     *
     * @param product_id
     * @param num
     * @return
     */
    @FormUrlEncoded
    @POST("shopping_cart/join_cart")
    Flowable<BaseModel> addShopCar(@Field("productId") String product_id,
                                   @Field("num") int num);

    /**
     * 购物车生成订单
     *
     * @param body
     * @return
     */
    @POST("creat_order_from_cart")
    Flowable<BaseModel<CreateOrderInfo>> createOrderFromShopCar(@Body RequestBody body);

    /**
     * 删除购物车商品
     *
     * @param productId
     * @return
     */
    @POST("shopping_cart/del_goods/{cartId}")
    Flowable<BaseModel> delGoodsFromShopCar(@Path("cartId") int productId);

    /**
     * 优币余额
     *
     * @return
     */
    @GET("coin")
    Flowable<BaseModel<YouMI>> getYoumi();

    /**
     * 优币明细
     *
     * @return
     */
    @GET("coin_list")
    Flowable<BaseModel<MyMoneyDetailInfo>> getYouMiDetailList(@Query("page") int page);

    /**
     * 优币明细
     *
     * @return
     */
    @GET("user_withdrawal_detail")
    Flowable<BaseModel<MyMoneyDetailInfo.DataBean>> withdrawDetail(@Query("id") String id, @Query("bizType") int bizType);

    /**
     * 获取系统信息
     *
     * @param system 1 Android 2 IOS
     * @return
     */
    @GET("get_system_info")
    Flowable<BaseModel<SystemInfo>> getSystemInfo(@Query("system") int system);

    /**
     * 系统配置弹窗
     *
     * @return
     */
    @GET("system_pop_Info")
    Flowable<BaseModel<BannerAndIconInfo>> getSystemDialog();

    /**
     * 获取邀请好友素材
     *
     * @return
     */
    @GET("get_invite_souece")
    Flowable<BaseModel<InviteFriend>> getInviteADSource(@Query("page") int page,
                                                        @Query("size") int size);

    /**
     * 获取特色专区
     *
     * @return
     */
    @GET("get_unique_area")
    Flowable<BaseModel<List<BannerAndIconInfo>>> getFeaturedArea();

    /**
     * 特色专区列表
     *
     * @param id
     * @return
     */
    @GET("get_topic_info")
    Flowable<BaseModel<BaseList<GiftGoods>>> getFeatureAreaList(@Query("id") String id, @Query("sort") String sort, @Query("page") int page);

    /************** 商学院 ******************/

    /**
     * 课程列表
     *
     * @param page
     * @return
     */
    @GET("get_school_list")
    Flowable<BaseModel<BaseList<Subject>>> queryColleageSubjectList(@Query("page") int page);

    /**
     * 课程详情
     *
     * @param id
     * @return
     */
    @GET("get_school_detail/{id}")
    Flowable<BaseModel<GoodsDetail>> getSubjectDetail(@Path("id") long id);

    /**
     * 课程详情---目录
     *
     * @param id
     * @return
     */
    @GET("get_school_catalogue/{id}")
    Flowable<BaseModel<List<SubjectTableInfo>>> getSubjectTable(@Path("id") long id);

    /**
     * 课程详情--观看20s
     *
     * @param id
     * @return
     */
    @FormUrlEncoded
    @POST("set_user_twenty_second")
    Flowable<BaseModel> postTwentySecond(@Field("id") long id);

    /**
     * 课程详情-----申请成为VIP
     *
     * @param id
     * @return
     */
    @FormUrlEncoded
    @POST("level_up")
    Flowable<BaseModel> requestVip(@Field("course_id") long id);

    /**
     * 课程分享信息
     *
     * @param id
     * @return
     */
    @GET("course_share/{id}")
    Flowable<BaseModel<SubjectShareInfo>> getSubjectShareInfo(@Path("id") long id);

    /**
     * 添加别名成功后 上传服务器
     *
     * @param user_id
     * @param models
     * @return
     */
    @FormUrlEncoded
    @POST("edit_umeng")
    Flowable<BaseModel> pushAlias(@Field("user_id") String user_id,
                                  @Field("models") String models);

    /**
     * 团队津贴列表
     *
     * @return
     */
    @GET("personal/team_detailed")
    Flowable<BaseModel<TeamAllowance>> teamDetail();

    /**
     * 团队管理订单
     *
     * @param type
     * @param page
     * @return
     */
    @GET("team_income_list")
    Flowable<BaseModel<MyTodayOrderInfo>> teamOrderList(@Query("type") String type, @Query("page") int page);

    /**
     * 天使计划----基础信息
     *
     * @return
     */
    @GET("angel_message")
    Flowable<BaseModel<BaseAngleInfo>> angleBaseInfo();

    /**
     * 成为天使---支付
     *
     * @param encodedPassword
     * @return
     */
    @FormUrlEncoded
    @POST("angel_order")
    Flowable<BaseModel> payForAngle(@Field("encodedPassword") String encodedPassword);

    /**
     * 上传天使用户信息
     *
     * @param name
     * @param mobile
     * @param identity
     * @param areaName
     * @param address
     * @param mailbox
     * @return
     */
    @FormUrlEncoded
    @POST("angel_info_insert")
    Flowable<BaseModel> uploadUserInfo(@Field("name") String name,
                                       @Field("mobile") String mobile,
                                       @Field("identity") String identity,
                                       @Field("areaName") String areaName,
                                       @Field("address") String address,
                                       @Field("mailbox") String mailbox);

    /**
     * 获取天使信息
     *
     * @return
     */
    @GET("angel_info")
    Flowable<BaseModel<AngleUserInfo>> angleUserInfo();

    /**
     * 获取天使合同
     *
     * @return
     */
    @GET("angel_contract")
    Flowable<BaseModel<AgreementInfo>> angleAgreement();

    /**
     * 提交签名文件
     *
     * @param pic
     * @return
     */
    @FormUrlEncoded
    @POST("angel_contract_confirm")
    Flowable<BaseModel<AgreementInfo>> commitAngleSign(@Field("pic1") String pic,
                                                       @Field("pic2") String pic2);

    /**
     * 星店商品下单-----获取余额信息
     *
     * @return
     */
    @POST("star_order_ensure")
    Flowable<BaseModel<UserMoneyInfo>> getStarStorePayInfo();

    /**
     * 星店支付
     *
     * @param pay
     * @return
     */
    @FormUrlEncoded
    @POST("star_order_pay")
    Flowable<BaseModel> starStoreToPay(@Field("encoded_info") String pay);

    /**
     * 电子币明细
     *
     * @param page
     * @param size
     * @return
     */
    @GET("electronic_detailed_hws")
    Flowable<BaseModel<MyMoneyDetailInfo>> starStoreCoinDetail(@Query("page") int page,
                                                               @Query("size") int size);

    /**
     * 购买验证
     *
     * @param product_id
     * @return
     */
    @FormUrlEncoded
    @POST("star/buy/verify")
    Flowable<BaseModel> canBuy(@Field("product_id") String product_id);

    /**
     * 获取默认地址
     *
     * @return
     */
    @GET("address_select")
    Flowable<BaseModel<AddressInfo>> getDefaultAddress();

    /**
     * 修改地址
     *
     * @param userName
     * @param mobile
     * @param isDefault
     * @param provinceCode
     * @param cityCode
     * @param countyCode
     * @param provinceName
     * @param cityName
     * @param countyName
     * @param address
     * @return
     */
    @FormUrlEncoded
    @POST("address_update/{id}")
    Flowable<BaseModel> updateAddress(@Path("id") String id,
                                      @Field("userName") String userName,
                                      @Field("mobile") String mobile,
                                      @Field("isDefault") String isDefault,
                                      @Field("provinceCode") String provinceCode,
                                      @Field("cityCode") String cityCode,
                                      @Field("countyCode") String countyCode,
                                      @Field("provinceName") String provinceName,
                                      @Field("cityName") String cityName,
                                      @Field("countyName") String countyName,
                                      @Field("address") String address);

    /**
     * 添加地址
     *
     * @param userName
     * @param mobile
     * @param isDefault
     * @param provinceCode
     * @param cityCode
     * @param countyCode
     * @param provinceName
     * @param cityName
     * @param countyName
     * @param address
     * @return
     */
    @FormUrlEncoded
    @POST("address_insert")
    Flowable<BaseModel<AddressBean>> addAddress(@Field("userName") String userName,
                                                @Field("mobile") String mobile,
                                                @Field("isDefault") String isDefault,
                                                @Field("provinceCode") String provinceCode,
                                                @Field("cityCode") String cityCode,
                                                @Field("countyCode") String countyCode,
                                                @Field("provinceName") String provinceName,
                                                @Field("cityName") String cityName,
                                                @Field("countyName") String countyName,
                                                @Field("address") String address);

    /**
     * 获取太阳码
     *
     * @param pid 产品id
     * @return
     */
    @GET("get_mini_code")
    Flowable<BaseModel<ShareUrl>> getQRCodePic(@Query("pid") String pid);

    /**
     * 计数分享
     *
     * @param id
     * @return
     */
    @POST("share_increase/{id}")
    Flowable<BaseModel> postShareNum(@Path("id") String id);

    /**
     * 短视频 列表
     *
     * @return
     */
    @GET("video_list")
    Flowable<BaseModel<BaseList<VideoClipInfo>>> videoClipList(@Query("page") int page, @Query("size") int size);

    /**
     * 首页短视频列表
     *
     * @return
     */
    @GET("video_home")
    Flowable<BaseModel<List<VideoClipInfo>>> homeVideoList();

    /**
     * 视频详情
     *
     * @param id
     * @return
     */
    @GET("video_detail")
    Flowable<BaseModel<VideoOtherInfo>> videoDetail(@Query("id") String id);

    /**
     * 发布评论
     *
     * @param id      视频/评论id
     * @param content 评论内容
     * @param type    类型 1视频 2评论
     * @return
     */
    @FormUrlEncoded
    @POST("video_comment_add")
    Flowable<BaseModel<CommentInfo>> postComment(@Field("id") String id,
                                                 @Field("content") String content,
                                                 @Field("type") String type);

    /**
     * 视频评论列表
     *
     * @param video_id
     * @param page
     * @return
     */
    @GET("get_comment_list")
    Flowable<BaseModel<BaseList<CommentInfo>>> commentList(@Query("video_id") String video_id,
                                                           @Query("page") int page);

    /**
     * 短视频点赞
     *
     * @param id
     * @return
     */
    @GET("video_like")
    Flowable<BaseModel> videoLike(@Query("id") String id);

    /**
     * 短视频评论点赞
     *
     * @param id
     * @return
     */
    @GET("video_comment_like")
    Flowable<BaseModel> videoCommentLike(@Query("video_comment_id") String id);

    /**
     * 上传分享
     *
     * @param id
     * @return
     */
    @GET("video_share")
    Flowable<BaseModel> videoShare(@Query("id") String id);

    /**
     * 宣传素材标签
     *
     * @return
     */
    @GET("get_publicity_lable")
    Flowable<BaseModel<List<MaterialLabel>>> getMaterialLabel();

    /**
     * 宣传素材列表
     *
     * @param id
     * @return
     */
    @GET("get_publicity_list")
    Flowable<BaseModel<BaseList<MaterialContent>>> getMaterialList(@Query("label_id") String id, @Query("page") int page);

    /**
     * 闪验-注册
     *
     * @param token
     * @param platform
     * @return
     */
    @FormUrlEncoded
    @POST("sy_mobile")
    Flowable<BaseModel<UserInfo>> getPhoneFromShanYan(@Field("sy_token") String token, @Field("platform") String platform);

    /**
     * 地址列表
     *
     * @param page
     * @return
     */
    @GET("address_list")
    Flowable<BaseModel<List<AddressInfo>>> getAddressList(@Query("page") int page);


    @GET("confirm_order")
    Flowable<BaseModel<PickGoods>> confirmOrder(@Query("page") int page);


    @GET("replenish_list")
    Flowable<BaseModel<MaintainGoods>> replenishList(@Query("page") int page);


    @GET("lk_replenish_list")
    Flowable<BaseModel<MaintainGoods>> lkReplenishList(@Query("page") int page);

    @GET("mugwort_replenish_list")
    Flowable<BaseModel<MaintainGoods>> mugwortReplenishList(@Query("page") int page);

    /**
     * 删除地址
     *
     * @param id
     * @return
     */
    @FormUrlEncoded
    @POST("address_del")
    Flowable<BaseModel> delAddress(@Field("id") String id);

    /**
     * 热门搜索
     *
     * @return
     */
    @GET("hot_search")
    Flowable<BaseModel<TaoBaoHotSearch>> hotSearch();

    /**
     * 获取加脉码
     *
     * @param order_id
     * @return
     */
    @FormUrlEncoded
    @POST("get_acode")
    Flowable<BaseModel<List<String>>> getJiaMaiCode(@Field("order_id") String order_id);

    /**
     * 优品热门搜索
     *
     * @return
     */
    @GET("fine_search")
    Flowable<BaseModel<YouPinHotSearch>> getYouPinHotSearch();

    /**
     * 优品热门搜索
     *
     * @return
     */
    @GET("bank_list")
    Flowable<BaseModel<BaseList<BankSearch>>> getBankSearch(@Query("bankName") String bankName);

    @GET("get_advert_banner")
    Flowable<BaseModel<BannerAndIconInfo>> getCompanyAd();

    /**
     * 送多多收益明细
     *
     * @param type 1 礼包 2赠品
     * @return
     */
    @GET("personal/send_more_income")
//
    Flowable<BaseModel<BaseList<GiveMoreIncomeDetail>>> giveMoreIncome(@Query("type") int type, @Query("page") int page, @Query("size") int size);

    /**
     * 可抵扣余额明细
     *
     * @param page
     * @return
     */
    @GET("deduction_list")
    Flowable<BaseModel<BaseList<DeductMoneyDetail>>> deductMoneyDetail(@Query("page") int page);

    /**
     * 获取赠品订单小提示
     *
     * @param order_id
     * @return
     */
    @GET("personal/pending_gift_explain")
    Flowable<BaseModel<List<String>>> getFreeGiftOrderTip(@Query("order_id") String order_id);

    /**
     * 送多多收益----申请结算可抵扣余额
     *
     * @param order_id
     * @return
     */
    @FormUrlEncoded
    @POST("personal/settlement")
    Flowable<BaseModel> submitSettlement(@Field("order_id") String order_id);

    /**
     * 京东结算预计
     *
     * @param page
     * @param size
     * @return
     */
    @GET("personal/pending_rebate_jd_list")
    Flowable<BaseModel<MyMonthOrderInfo>> jdMonthOrder(@Query("page") int page, @Query("size") int size);

    /**
     * 送多多--首页--赠品专区
     *
     * @return
     */
    @GET("send_goods_list")
    Flowable<BaseModel<SddFreeGoodsList>> sddFreeGoodsList();

    /**
     * 送多多--赠品列表
     *
     * @param goodsId
     * @param shareId
     * @param page
     * @param size
     * @return
     */
    @GET("send_goods_list_all")
    Flowable<BaseModel<SddFreeGoodsData>> sddFreeGoodsAllList(@Query("goodsId") String goodsId, @Query("shareId") String shareId, @Query("page") int page, @Query("size") int size);

    /**
     * 送多多--首页--礼包专区
     *
     * @return
     */
    @GET("vip_goods_list")
    Flowable<BaseModel<BaseList<SddVipGoodsInfo>>> sddVipGoodsList(@Query("page") int page, @Query("size") int size);

    /**
     * 送多多--赠品创建订单
     *
     * @param consignee
     * @param area_id    省code
     * @param area_id2   市code
     * @param area_id3   县code
     * @param area_name
     * @param mobile
     * @param address
     * @param note
     * @param product_id
     * @return
     */
    @FormUrlEncoded
    @POST("send_order_create")
    Flowable<BaseModel<SddFreeGoodsData>> sddFreeGoodsCreateOrder(
            @Field("consignee") String consignee,
            @Field("area_id") String area_id,
            @Field("area_id2") String area_id2,
            @Field("area_id3") String area_id3,
            @Field("area_name") String area_name,
            @Field("mobile") String mobile,
            @Field("address") String address,
            @Field("note") String note,
            @Field("product_id") String product_id);


    /**
     * @param type 5-列表海报，6商品海报，7-列表小程序，8-商品小程序
     * @param pid  商品id，type为6,8时为必传
     * @return
     */
    @GET("share_message")
    Flowable<BaseModel<ShareMsg>> shareMsg(@Query("type") int type, @Query("pid") String pid);

    /**
     * 送多多--用户送多多相关数据
     *
     * @return
     */
    @POST("send_more_info")
    Flowable<BaseModel<SddUserData>> sendMoreInfo();

    /**
     * 送多多--赠品订单列表
     *
     * @return
     */
    @GET("gift_order_list")
    Flowable<BaseModel<BaseList<SddFreeGoodsOrderInfo>>> sddFreeGoodsOrderList(@Query("type") int type, @Query("page") int page, @Query("size") int size);

    /**
     * 送多多----领取审核
     *
     * @param order_id
     * @param status
     * @return
     */
    @FormUrlEncoded
    @POST("confirm_gift")
    Flowable<BaseModel> sddConfirmGift(@Field("order_id") String order_id, @Field("status") int status);

    /**
     * 查询上级是否有赠送名额
     *
     * @return code: 200:正常返回,50006-弹窗提示，50007-弹Toast
     */
    @POST("pick_select")
    Flowable<BaseModel> pickSelect();

    /**
     * 验证加油卡激活码
     *
     * @param ymCode
     * @return
     */
    @GET("oil/check_code")
    Flowable<BaseModel<OilCardInfo>> verifyOilCardCode(@Query("ymCode") String ymCode);

    /**
     * 激活油卡码
     *
     * @param ymCode
     * @return
     */
    @GET("oil/receive_code")
    Flowable<BaseModel> actOilCardCode(@Query("ymCode") String ymCode);

    /**
     * 获取加油卡
     *
     * @return
     */
    @POST("oil/free_get")
    Flowable<BaseModel> getOilCard();

    /**
     * 加油卡用户信息
     *
     * @return
     */
    @POST("oil/user_data")
    Flowable<BaseModel<OilCardData>> oilCardInfo();

    /**
     * 油卡明细
     *
     * @param page
     * @param size
     * @return
     */
    @GET("oil/account_detail")
    Flowable<BaseModel<BaseList<OilCardOrderDetail>>> oilCardDetail(@Query("page") int page, @Query("size") int size);

    /**
     * 中泰
     *
     * @return
     */
    @POST("zhongtai/get_url")
    Flowable<BaseModel<ZhongTaiData>> getZhongTaiUrl();

    /**
     * 美团
     *
     * @return
     */
    @POST("meituan/get_url")
    Flowable<BaseModel<MeiTuanData>> meituanUrl();

    /**
     * 送多多--推荐商品
     *
     * @return
     */
    @GET("ten_recommend_goods")
    Flowable<BaseModel<List<GoodsInfo>>> sddRecommendList();

    /**
     * 油卡banner
     *
     * @return
     */
    @GET("oil/banner")
    Flowable<BaseModel<OilBannerData>> oilBanner();

    /**
     * 油站列表
     *
     * @param itemName 油号(0,92,95,98)
     * @param lng      经度
     * @param lat      纬度
     * @param page
     * @param type     1-按地址搜索，2-按油站搜索
     * @param gasName  油站名称，按油站搜索时为必填
     * @return
     */
    @GET("oil/search_list")
    Flowable<BaseModel<List<OilStationData>>> oilStationList(@Query("itemName") int itemName,
                                                             @Query("lng") double lng,
                                                             @Query("lat") double lat,
                                                             @Query("page") int page,
                                                             @Query("type") String type,
                                                             @Query("gasName") String gasName);

    /**
     * 油站详情
     *
     * @param gasId 油站id
     * @param lng   经度 转换后经纬度 用于计算距离
     * @param lat   纬度
     * @param type  1-易加油 2-团油 3-小桔
     * @param lng1  经度 原始经纬度
     * @param lat1  纬度
     * @return
     */
    @GET("oil/detail")
    Flowable<BaseModel<OilStationDetailData>> stationDetail(@Query("gasId") String gasId,
                                                            @Query("lng") double lng,
                                                            @Query("lat") double lat,
                                                            @Query("lng1") double lng1,
                                                            @Query("lat1") double lat1,
                                                            @Query("type") int type);

    /**
     * 团油订单上传
     *
     * @return
     */
    @POST("oil/tuan_record")
    Flowable<BaseModel> oilRecord();

    /**
     * 获取信用卡Url
     *
     * @return
     */
    @GET("credit_card/get_url")
    Flowable<BaseModel<CreditCard>> creditCardUrl();

    /**
     * 首页---热门活动
     *
     * @return
     */
    @GET("hot_events")
    Flowable<BaseModel<HomeHotActData>> homeHotAct();

    /**
     * 信用卡结算预计
     *
     * @return
     */
    @GET("credit_card/settlement")
    Flowable<BaseModel<MyMonthOrderInfo>> creditCardIncome(@Query("page") int page, @Query("size") int size);

    /**
     * type为4的油站token
     *
     * @return
     */
    @POST("oil/long_get_token")
    Flowable<BaseModel<OilType4Data>> getOilType4Token();

    /**
     * 获取团油支付url
     *
     * @return
     */
    @FormUrlEncoded
    @POST("oil/getH5Url")
    Flowable<BaseModel<OilType4Data>> getOilCardH5Url(@Field("gasId") String gasId, @Field("gunNo") int gunNo);
}
